package com.wlc.base.array;

/**
 * @author 王立朝 wanglichao@champion-credit.com
 * @description 数组的使用
 * @date 2021-06-24 13:31
 */
public class ArrayDemo02 {
    /**
     * 数组的使用
     */
    public void method06() {
        int[] numbers = {1, 2, 3, 4, 5};
        // 例子1：遍历所有元素
        for (int i = 0; i < numbers.length; i++) {
            System.out.println("numbers = " + numbers[i]);
        }
        // 例子2：查找最大值
        System.out.println("===============");
        int max = numbers[0];
        for (int i = 0; i < numbers.length; i++) {
            if (numbers[i] > max) {
                max = numbers[i];
            }
        }
        System.out.println("最大值为：=" + max);
        System.out.println("===============");
        // 例子3：计算数组元素的和
        int sum = 0;
        for (int i = 0; i < numbers.length; i++) {
            sum += numbers[i];
        }
        System.out.println("sum=" + sum);
        System.out.println("=============");
        // 例子4: 数组作为参数
        printArray(numbers);
        System.out.println();
        System.out.println("=============");
        // 例子5：打印反转后的数组
        printArray(reverseArray(numbers));
    }

    /**
     * 例子4： 数组作为参数
     * 使用增强型for循环
     *
     * @param arrays 打印数组
     */
    public void printArray(int[] arrays) {
        for (int array : arrays) {
            System.out.print("打印的数组为：" + array + "  ");
        }
    }

    /**
     * 例子5: 数组作为返回值
     * 反转数组的顺序
     *
     * @param arrays 正常的数组
     * @return 反转后的数组
     */
    public int[] reverseArray(int[] arrays) {
        // 定义了一个新的数组，用于接收反转后的数组，并返回
        int[] result = new int[arrays.length];
        for (int i = 0, j = arrays.length - 1; i < arrays.length; i++, j--) {
            result[j] = arrays[i];
        }
        return result;
    }

    public static void main(String[] args) {
        new ArrayDemo02().method06();
    }
}
